package com.checker.designPattern.creation.factory;

interface AbstractFactory {
    ObjectA createObjectA();
    ObjectB createObjectB();
}

class AbstractFactoryA implements AbstractFactory{

    @Override
    public ObjectA createObjectA() {
        return new ObjectA("FactoryA ObjectA");
    }

    @Override
    public ObjectB createObjectB() {
        return new ObjectB("FactoryA ObjectB");
    }
}

class AbstractFactoryB implements AbstractFactory{

    @Override
    public ObjectA createObjectA() {
        return new ObjectA("FactoryB ObjectA");
    }

    @Override
    public ObjectB createObjectB() {
        return new ObjectB("FactoryB ObjectB");
    }
}